# 在代码中保存 微信的UI元素,以对象 UiObject  的形式保存,


from weixin_actions import WeixinAction


class Wchat_uielements:
    """
    微信版本 "8.0.41"  以下的,
    """

    def __init__(self, w: WeixinAction) -> object:
        self.client = w
        self.d = w.d
        # 导航栏
        self.navbar = [self.d(resourceId="com.tencent.mm:id/f2a")]
        # 首页-导航栏[微信]
        self.navbar_weixin = [self.navbar[0][0]]
        # 首页-导航栏[通讯录]
        self.navbar_book = [self.navbar[0][1]]
        # 首页-导航栏[发现]
        self.navbar_discover = [self.navbar[0][2]]
        # 首页-导航栏[我]
        self.navbar_me = [self.navbar[0][3]]
        # 首页-导航栏[微信] {标题栏}
        self.weixin_title_bar = [self.d(resourceId="com.tencent.mm:id/do")]
        """
        微信导航--微信,上部,标题栏中 的标题
                其实在当前界面有两个，
                上级结点不一样，
                1 上级 android:id/content
                2 上级 com.tencent.mm:id/do

        群 信息界面的标题，
        导航-通讯录 界面 的标题，
        导航-通讯录-群聊 界面的标题
        type :  android.widget.TextView
        name :  android:id/text1
        text :  聊天信息(161)

        导航-发现 界面的标题
        """
        self.share_title = [self.d(resourceId="android:id/text1")]
        """
        微信导航--微信,上部,标题栏中 搜索按钮
        在 MEIZU 手机中，这相结点名与 其它手机的不一样，所以判断一下，")]

        """
        self.weixin_button_search = [self.d(resourceId="com.tencent.mm:id/j5t"),
                                     self.d(resourceId="com.tencent.mm:id/gsl")]
        """
        通用元素
        微信导航--微信--按钮 搜索 --输入框
        通讯录 -> 群聊 => 按钮<搜索> -> 搜索框")]

        """
        self.weixin_input_box = [self.d(resourceId="com.tencent.mm:id/cd7", className="android.widget.EditText")]
        """
        微信导航--微信--按钮 搜索 --输入框
        输入文字后，会自动 出结果
        结果是列表，")]
 列表，
        """
        self.weixin_search_results = [self.d(resourceId="com.tencent.mm:id/kpm")]
        """
        微信导航--微信,底部导航栏的 上级框架总结点")]

        """
        self.weixin_bottom_navigation_bar = [self.d(resourceId="com.tencent.mm:id/fj3")]

        """
        微信导航--微信，信息流，元素列表
        通讯录页面，好友标签 列表")]

        """
        self.table_rows = [self.d(resourceId="com.tencent.mm:id/hg4")]
        """
        红点提示，
        腾讯新闻，好友信息，企业通知 ，微信群")]

        """
        self.bth_redtip = [self.d(resourceId="com.tencent.mm:id/kmv", className="android.widget.TextView")]
        """
        红点提示，
        # # 公众号，订阅号，折叠的群聊，")]

        """
        self.bth_redtip2 = [self.d(resourceId="com.tencent.mm:id/a2f", className="android.widget.ImageView")]
        """
        红点,所在的bth,聊天hg4,名字,")]

        """
        self.bth_redtip_name = [self.d(resourceId="com.tencent.mm:id/kmv").right(resourceId="com.tencent.mm:id/hg4")]

        """
        微信导航--微信--功能--折叠的群聊
        """

        """
        微信导航--微信--功能--折叠的群聊 界面的标题
        type :  android.widget.TextView
        name :  com.tencent.mm:id/ko4
        text :  折叠的群聊
")]

        """
        self.weixin_FoldedRooms_title = [self.d(text="折叠的群聊")]
        """
        微信导航--微信，-聊天窗口界面，界面元素
        聊天窗口，界面
        包括与好友聊天，
        包括与群聊天，
        包括与公众号等等，

        """
        self.chat_interface_back = [self.d(resourceId="com.tencent.mm:id/g0")]
        """
        聊天窗口，左上角 < 返回按钮，
        微信支付,微信团队,服务通知,折叠的群聊,公众号,好友,微信群
")]

        """
        self.chat_interface_back1 = [self.d(resourceId="com.tencent.mm:id/yn")]
        """
        聊天窗口，左上角 < 返回按钮，
        腾讯新闻,,订阅号消息
")]

        """
        self.chat_interface_back2 = [self.d(resourceId="com.tencent.mm:id/g1")]
        """
        订阅号，")]

        """
        self.subscription_account = [self.d(description="订阅号消息")]
        """
        聊天窗口，上标题
        通用的选择方法，包括好友，微信群，微信功能，公众号等等，")]

        """
        self.chat_interface_title_common = [
            self.d(resourceId="com.tencent.mm:id/fe").child(className="android.widget.TextView")]
        """
        与好友，聊天窗口，上标题
        群 聊天窗口，上标题，")]

        """
        self.chat_interface_title = [self.d(resourceId="com.tencent.mm:id/ko4", className="android.widget.TextView")]
        """
        与好友，聊天窗口，上标题
        群 聊天窗口，上标题，

        在折叠的群聊中   群聊天界面，会出现两个 ko4")]

        """
        self.chat_interface_title2 = [self.d(resourceId="com.tencent.mm:id/ko4")[1]]
        """
        聊天窗口，右上角 ...
        与好友聊天窗口，与群聊天窗口，通用
        type :  android.widget.ImageView
        name :  com.tencent.mm:id/eo
        desc :  聊天信息
")]

        """
        self.chat_interface_info = [self.d(resourceId="com.tencent.mm:id/eo")]
        """
        聊天窗口界面的输入框")]

        """
        self.chat_interface_edittext = [self.d(resourceId="com.tencent.mm:id/b4a", className="android.widget.EditText")]
        """
        聊天窗口界面
        输入框=> 按钮<发送>")]

        """
        self.chat_interface_send = [self.d(resourceId="com.tencent.mm:id/b8k", className="android.widget.Button")]
        """
        当前微信用户被移出群聊，再进入群聊，会出现提示
        type :  android.widget.TextView
        name :  com.tencent.mm:id/b59
        text :  无法在已退出的群聊中发送消息
        被移出群聊后显示：无法在已退出的群聊中发送消息
        群主解散群后显示：无法在已停用的群聊中发送消息

        公众号的导航 菜单栏，也是b59
        例：
        d(resourceId="com.tencent.mm:id/b59", text="小程序商城")
        d(resourceId="com.tencent.mm:id/b59", text="话机通信")
        d(resourceId="com.tencent.mm:id/b59", text="会员服务")")]

        """
        self.chat_interface_removed_tip = [self.d(resourceId="com.tencent.mm:id/b59")]
        """
        通讯录界面，新的朋友")]

        """
        self.book_new_friend = [self.d(resourceId="com.tencent.mm:id/knx")]
        """
        通讯录中的 群聊 标签，")]

        """
        self.book_room = [self.d(text="群聊")]
        """
        通讯录 => 群聊 -> 群列表")]

        """
        self.book_room_rows = [self.d(resourceId='com.tencent.mm:id/bqu')]
        """
        通讯录--群聊--搜索框")]

        """
        self.book_room_search = [self.d(resourceId="com.tencent.mm:id/gs5")]
        """
        通讯录=> 好友邀请提示")]

        """
        self.book_friend_invitations = [self.d(resourceId="com.tencent.mm:id/eb7")]
        #################################################################################

        """
        通讯录=> 新的朋友")]

        """
        self.book_label_newfriend = [self.d(text="新的朋友")]

        """
        按钮添加朋友")]

        """
        self.new_friends_add = [self.d(text="添加朋友")]

        """
        接受按钮")]

        """
        self.new_friend_accept = [self.d(resourceId="com.tencent.mm:id/eb6", className="android.widget.Button")]

        """
        通过好友验证界面的标题，")]

        """
        self.new_friend_through = [self.d(text="通过朋友验证")]

        """
        通过好友验证界面的 完成按钮")]

        """
        self.new_friend_accept_doneself = [self.d(resourceId="com.tencent.mm:id/e9q")]

        """
        通讯录中的公众号标签，")]

        """
        self.book_public_account = [self.d(text="公众号")]

        """
        通讯录中的 企业微信联系人 标签")]

        """
        self.book_wxwork_friends = [self.d(text="企业微信联系人")]

        """
        通讯录中的，好友信息行，
")]

        """
        self.book_friend_row = [self.d(resourceId="com.tencent.mm:id/hg4", className="android.widget.TextView")]

        """
        通讯录 底部的 提示，
        例：
                226个朋友")]

        """
        self.book_bottom_tip = [self.d(resourceId="com.tencent.mm:id/bmm")]

        # 微信导航--我， 界面元素

        """
        当前微信号的 昵称")]

        """
        self.me_nick_name = [self.d(resourceId="com.tencent.mm:id/hfq")]

        """
        当前微信的 wxid")]

        """
        self.me_wxid = [self.d(resourceId="com.tencent.mm:id/l29")]

        """
        页面 我
        按钮<设置>")]

        """
        self.me_settings = [self.d(resourceId="android:id/title", text="设置")]

        """
        我->设置
        标题 设置")]

        """
        self.me_settings_title = [self.d(resourceId="android:id/text1", text="设置")]

        """
        我->设置
        按钮<通用>")]

        """
        self.settings_universal = [self.d(resourceId="android:id/title", text="通用")]

        """
        我->设置->通用
        标题 通用")]

        """
        self.settings_universal_title = [self.d(resourceId="android:id/text1", text="通用")]

        """
        我->设置->通用
        按钮 <存储空间>")]

        """
        self.settings_storage_space = [self.d(resourceId="android:id/title", text="存储空间")]

        """
        我->设置->通用->存储空间
        标题 存储空间")]

        """
        self.settings_storage_space_title = [self.d(resourceId="android:id/text1", text="存储空间")]

        """
        我->设置->通用->存储空间
        微信已用空间
            --正在计算（空间数据）")]

        """
        self.settings_all_space = [self.d(resourceId="com.tencent.mm:id/lnu")]

        """
        我->设置->通用->存储空间
        缓存->正在计算（缓存数据）")]

        """
        self.settings_cache_count = [self.d(resourceId="com.tencent.mm:id/apg")]

        """
        我->设置->通用->存储空间
        缓存->前往清理 按钮")]

        """
        self.settings_goto_clear = [self.d(resourceId="com.tencent.mm:id/lno")]

        """
        我->设置->通用->存储空间
        缓存->前往清理 按钮
        清理 按钮")]

        """
        self.settings_cache_clear = [self.d(resourceId="com.tencent.mm:id/c0a")]

        """
        我->设置->通用->存储空间
        缓存->前往清理 按钮
        清理 按钮
        弹窗
            -内容：清理缓存可能需要一些时间，清理过程中请耐心等候。
            -按钮：清理")]

        """
        self.settings_cache_popup_clear = [self.d(resourceId="com.tencent.mm:id/guw")]

        """
        我->设置->通用->存储空间
        缓存->前往清理 按钮
        清理 按钮

        点过弹窗-按钮 清理，后，
        出现提示 ：
")]

        """
        self.settings_cache_tips = [self.d(resourceId="com.tencent.mm:id/cj7")]

        """
        我->设置->通用->存储空间
        聊天记录=正在计算（数据）")]

        """
        self.settings_records_count = [self.d(resourceId="com.tencent.mm:id/h2h")]

        """
        我->设置->通用->存储空间
        聊天记录=>正在计算（数据）")]

        """
        self.settings_records_manage = [self.d(resourceId="com.tencent.mm:id/lnp")]

        """
        我->设置->通用->存储空间->聊天记录空间管理
        正在加载…")]

        """
        self.settings_records_loading = [self.d(resourceId="com.tencent.mm:id/g3r")]

        """
        我->设置->通用->存储空间->聊天记录空间管理
        信息行")]

        """
        self.settings_records_rows = [self.d(resourceId="com.tencent.mm:id/kpm")]

        """
        我->设置->通用->存储空间->聊天记录空间管理
        按钮<全选>
        点击全选后，当前元素的text 变为 取消全靠，")]

        """
        self.settings_records_selectAll = [self.d(resourceId="com.tencent.mm:id/mll")]

        """
        我->设置->通用->存储空间->聊天记录空间管理
        按钮<清理>")]

        """
        self.settings_records_clear = [self.d(resourceId="com.tencent.mm:id/c0a")]

        """
        我->设置->通用->存储空间->聊天记录空间管理->弹窗
        弹窗
        所选范围内无可清理的图片、视频或文件
        所选范围还剩余 16.8 GB 的聊天记录，包括文字、语音、表情等。
        我知道了
        删除所选范围内剩余的聊天记录")]

        """
        self.settings_records_clearAll = [self.d(resourceId="com.tencent.mm:id/moa")]

        """
        我->设置->通用->存储空间->聊天记录空间管理->弹窗->弹窗
        弹窗
        删除所选范围内剩余的聊天记录
        剩余的聊天记录主要包括文字、语音和表情等。
        按钮<删除>")]

        """
        self.settings_records_delete = [self.d(resourceId="com.tencent.mm:id/aln")]

        """
        我->设置->通用->存储空间->聊天记录空间管理->弹窗->弹窗->弹窗
        弹窗
        删除后不可恢复，确定删除？
        按钮<删除>")]

        """
        self.settings_records_delete2 = [self.d(resourceId="com.tencent.mm:id/knx")]

        """
        我->设置->通用->存储空间->聊天记录空间管理->弹窗->弹窗->弹窗->弹窗
        弹窗
        正在删除: 5%")]

        """
        self.settings_records_deleting = [self.d(resourceId="com.tencent.mm:id/gvj")]

        """
        微信好友信息界面
        与企业微信好友 界面元素 通用
        """

        """
        页面上 最上面 的第一个名字")]

        """

        self.friend_first_name = [self.d(resourceId="com.tencent.mm:id/bq1", className="android.widget.TextView")]

        """
        当设置备注名称时，页面上会出现第二个名字位置
        昵称 转到 第二个位置")]

        """
        self.friend_second_name = [self.d(resourceId="com.tencent.mm:id/bq0")]

        """
        好友的微信号   wxid")]

        """
        self.friend_wxid = [self.d(resourceId="com.tencent.mm:id/bq9")]

        """
        好友 的地区")]

        """

        self.friend_area = [self.d(resourceId="com.tencent.mm:id/bpz", className="android.widget.TextView")]

        """
        设置备注和标签 set_notes_and_labels
        当已设置标签后，，变为 标签")]

        """
        # [self.d(resourceId="com.tencent.mm:id/br8")[0]
        self.set_notes = [self.d(resourceId="com.tencent.mm:id/isy")[0]]

        """
        通讯录-> 好友row -> 信息界面 -> 设置备注和标签 -> 备注文本框")]

        """
        self.text_view_notes = [self.d(resourceId="com.tencent.mm:id/bof")]

        """
         通讯录-> 好友row -> 信息界面 -> 设置备注和标签 -> 备注文本编辑框")]

        """
        self.edit_text_notes = [self.d(resourceId="com.tencent.mm:id/bo5")]

        """
        通讯录-> 好友row -> 信息界面 -> 设置备注和标签 -> 按钮完成，")]

        """
        self.button_done = [self.d(resourceId="com.tencent.mm:id/en")]

        """
        好友界面 归属的公司")]

        """
        self.friend_company_name = [self.d(resourceId="com.tencent.mm:id/bpk")]

        """
        好友信息界面，企业标签")]

        """
        self.friend_company_item = [self.d(text="企业")]

        """
        好友信息界面的，离职 标签")]

        """
        self.friend_depart_item = [self.d(text="已离职")]

        """
        好友信息界面的，发消息")]

        """
        self.friend_send_message = [self.d(resourceId="com.tencent.mm:id/khj", text="发消息")]

        """
        公众号 信息界面
        """

        """
        公众号 列表 界面 中 条目")]

        """
        self.public_account_items = [self.d(resourceId="com.tencent.mm:id/aip")]

        """
        公众号 列表 底部 提示
        例：
        19个公众号")]

        """
        self.public_account_bottom_tip = [self.d(resourceId="com.tencent.mm:id/btz")]

        """
        企业好友 信息界面
        """

        """
        企业微信联系人 界面中 列表的 条目")]

        """
        self.wxwork_friends_items = [self.d(resourceId="com.tencent.mm:id/h_0")]

        """
        微信群 信息界面
        标题：share_title
        """

        """
        微信群 信息界面,成员列表
        成员的头像图标，")]

        """
        self.room_members = [self.d(resourceId="com.tencent.mm:id/iwa")]

        """
        微信群 信息界面,成员列表--群主")]

        """
        self.room_owner = [self.d(resourceId="com.tencent.mm:id/iwa")[0]]

        """
        群信息界面
        群聊名称标签，")]

        """
        self.room_name_table = [self.d(resourceId="android:id/title", text="群聊名称")]

        """
        群信息界面，标签,备注")]

        """
        self.room_label_notes = [self.d(text="备注")]

        # 
        # self.room_notes_empty
        #     """
        #     群信息界面
        #    当没有备注名称时，只有 结点 com.tencent.mm:id/ka3，
        #     :return:
        #     """
        #     [self.d(text="备注")]

        """
        群信息界面
        当有备注名称时，在此结点下，会生成，android:id/summary")]

        """
        self.room_notes_text = [self.d(resourceId="android:id/summary")]

        """
        群信息界面--备注修改界面
        备注输入框")]

        """
        self.room_notes_editText = [self.d(resourceId="com.tencent.mm:id/gy9", className="android.widget.EditText")]

        """
        群信息界面->备注修改界面
        按钮： 完成

        type :  android.widget.Button
        name :  com.tencent.mm:id/hfe
        text :  完成
        enabled :  False

        当在输入框中 输入文字后，
        enabled 变为 True")]

        """
        self.room_notes_done = [self.d(resourceId="com.tencent.mm:id/hfe")]

        """
        群信息界面->备注修改界面
        点击按钮 完成 后，可能出现的弹窗，

        eg:

        你的操作过于频繁，可稍后再试，
        确定，
")]

        """
        self.room_notes_pop_tip = [self.d(resourceId="com.tencent.mm:id/guo")]

        """
        群信息界面->备注修改界面
        点击按钮 完成 后，可能出现的弹窗，

        eg:

        你的操作过于频繁，可稍后再试，
        确定，
")]

        """
        self.room_notes_pop_button_ok = [self.d(resourceId="com.tencent.mm:id/guw")]

        """
        群信息 界面的 开关列表")]

        """
        self.room_switchs = [self.d(resourceId="com.tencent.mm:id/bab")]

        """
        按钮 折叠该群聊，")]

        """
        self.room_switchs_fold = [
            self.d(resourceId="android:id/title", text="折叠该群聊").right(resourceId="com.tencent.mm:id/bab")]

        """
        群信息界面，保存到通讯录开关按钮")]

        """
        self.room_switch_save_tobook = [
            self.d(resourceId="android:id/title", text="保存到通讯录").right(resourceId="com.tencent.mm:id/bab")]

        """
        群信息界面，保存到通讯录开关按钮
        uiautomator2 没有实现 parent
        # android-uiautomator-server not implemented")]

        """
        # [self.d(text="保存到通讯录").parent().sibling("android.widget.FrameLayout").child(
        #     "com.tencent.mm:id/bab")]
        self.room_switch_save_tobook_click = [self.d(resourceId="android:id/title", text="保存到通讯录").right(
            resourceId="com.tencent.mm:id/bab").click(timeout=5)]

        """
        群信息界面，保存到通讯录开关按钮")]
        """
        self.room_switch_save_tobook2 = [self.d(resourceId="com.tencent.mm:id/bab")[2]]

        """
        第一次点击 折叠 后，会出现弹窗")]
        """
        self.room_popup_tohide = [self.d(resourceId="com.tencent.mm:id/bt2")]

        """
        群信息界面，保存到通讯录 标签")]

        """
        self.room_label_saveToBook = [self.d(text="保存到通讯录")]

        """
        群信息界面，标签,折叠该群聊")]

        """
        self.room_label_toFold = [self.d(text="折叠该群聊")]

        """
        群信息界面， <退出群聊> 按钮
        群信息界面， <删除> 按钮")]

        """
        self.room_button_exit = [self.d(resourceId="com.tencent.mm:id/khj")]

        """
        点击退出群聊后的 弹窗中的两个按钮
        按钮1：
              type :  android.widget.Button 
              name :  com.tencent.mm:id/alm 
              text :  取消 
        按钮2：
              type :  android.widget.Button 
              name :  com.tencent.mm:id/aln 
              text :  退出 
        """

        """
        群信息界面，弹窗中的 退出 按钮

        聊天记录空间管理-> 清理")]

        """
        self.room_popup_exit = [self.d(resourceId="com.tencent.mm:id/aln")]

        """
        删除已退出的群,确定删除，
        tip:
        清空聊天记录，并在聊天列表中删除。")]

        """
        self.room_popup_del = [self.d(resourceId="com.tencent.mm:id/knx")]


class Wechat_Uielements2(Wchat_uielements):
    def __init__(self,  w: WeixinAction):
        super().__init__(w)
        # 导航栏
        self.navbar = [self.d(resourceId="com.tencent.mm:id/h6y"), self.d(resourceId="com.tencent.mm:id/huj")]
        # 首页-导航栏[微信]
        self.navbar_weixin = [self.navbar[0][0]]
        # 首页-导航栏[通讯录]
        self.navbar_book = [self.navbar[0][1]]
        # 首页-导航栏[发现]
        self.navbar_discover = [self.navbar[0][2]]
        # 首页-导航栏[我]
        # 华为play7T,d(resourceId="com.tencent.mm:id/icon_tv", text="我")
        self.navbar_me = [self.navbar[0][3],
                          self.d(resourceId="com.tencent.mm:id/h7q", text="我"),
                          self.d(resourceId="com.tencent.mm:id/icon_tv", text="我"),
                          self.d(resourceId="com.tencent.mm:id/icon_tv")[3]]

        # self.me_nick_name = [self.d(resourceId="com.tencent.mm:id/kbb")]
        # self.me_wxid = [self.d(resourceId="com.tencent.mm:id/ouv")]

        # 首页-导航栏[微信] {标题栏}
        self.weixin_title_bar = [self.d(resourceId="com.tencent.mm:id/hb")]
        """
        微信导航--微信,上部,标题栏中 的标题
                其实在当前界面有两个，
                上级结点不一样，
                1 上级 android:id/content
                2 上级 com.tencent.mm:id/do

        群 信息界面的标题，
        导航-通讯录 界面 的标题，
        导航-通讯录-群聊 界面的标题
        type :  android.widget.TextView
        name :  android:id/text1
        text :  聊天信息(161)

        导航-发现 界面的标题
        """
        self.share_title = [self.d(resourceId="android:id/text1")]
        """
        微信导航--微信,上部,标题栏中 搜索按钮
        在 MEIZU 手机中，这相结点名与 其它手机的不一样，所以判断一下，")]

        """
        self.weixin_button_search = [self.d(resourceId="com.tencent.mm:id/meb")]
        """
        通用元素
        微信导航--微信--按钮 搜索 --输入框
        通讯录 -> 群聊 => 按钮<搜索> -> 搜索框")]

        """
        self.weixin_input_box = [self.d(resourceId="com.tencent.mm:id/d98")]
        """
        微信导航--微信--按钮 搜索 --输入框
        输入文字后，会自动 出结果
        结果是列表，")]
 列表，
        """
        self.weixin_search_results = [self.d(resourceId="com.tencent.mm:id/odf")]
        """
        微信导航--微信,底部导航栏的 上级框架总结点")]

        """
        self.weixin_bottom_navigation_bar = [self.d(resourceId="com.tencent.mm:id/huj")]

        """
        微信导航--微信，信息流，元素列表
        通讯录页面，好友标签 列表")]

        """
        self.table_rows = [self.d(resourceId="com.tencent.mm:id/kbq")]
        """
        红点提示，
        腾讯新闻，好友信息，企业通知 ，微信群")]

        """
        self.bth_redtip = [self.d(resourceId="com.tencent.mm:id/o_u")]
        """
        红点提示，
        # # 公众号，订阅号，折叠的群聊，")]

        """
        self.bth_redtip2 = [self.d(resourceId="com.tencent.mm:id/a_h", className="android.widget.ImageView")]
        """
        红点,所在的bth,聊天hg4,名字,")]

        """
        self.bth_redtip_name = [self.d(resourceId="com.tencent.mm:id/o_u").right(resourceId="com.tencent.mm:id/kbq")]

        """
        微信导航--微信--功能--折叠的群聊
        """

        """
        微信导航--微信--功能--折叠的群聊 界面的标题
        type :  android.widget.TextView
        name :  com.tencent.mm:id/ko4
        text :  折叠的群聊
")]

        """
        self.weixin_FoldedRooms_title = [self.d(text="折叠的群聊")]
        """
        微信导航--微信，-聊天窗口界面，界面元素
        聊天窗口，界面
        包括与好友聊天，
        包括与群聊天，
        包括与公众号等等，

        """
        self.chat_interface_back = [self.d(resourceId="com.tencent.mm:id/he")]
        """
        聊天窗口，左上角 < 返回按钮，
        微信支付,微信团队,服务通知,折叠的群聊,公众号,好友,微信群
")]

        """
        self.chat_interface_back1 = [self.d(resourceId="com.tencent.mm:id/a4p")]
        """
        聊天窗口，左上角 < 返回按钮，
        腾讯新闻,,订阅号消息
")]

        """
        self.chat_interface_back2 = [self.d(resourceId="com.tencent.mm:id/g1")]
        """
        订阅号，")]

        """
        self.subscription_account = [self.d(description="订阅号消息")]
        """
        聊天窗口，上标题
        通用的选择方法，包括好友，微信群，微信功能，公众号等等，")]

        """
        self.chat_interface_title_common = [
            self.d(resourceId="com.tencent.mm:id/gp").child(className="android.widget.TextView")]
        """
        与好友，聊天窗口，上标题
        群 聊天窗口，上标题，")]

        """
        self.chat_interface_title = [self.d(resourceId="com.tencent.mm:id/obn")]
        """
        与好友，聊天窗口，上标题
        群 聊天窗口，上标题，

        在折叠的群聊中   群聊天界面，会出现两个 ko4")]

        """
        self.chat_interface_title2 = [self.d(resourceId="com.tencent.mm:id/obn")[1]]
        """
        聊天窗口，右上角 ...
        与好友聊天窗口，与群聊天窗口，通用
        type :  android.widget.ImageView
        name :  com.tencent.mm:id/eo
        desc :  聊天信息
")]

        """
        self.chat_interface_info = [self.d(resourceId="com.tencent.mm:id/fq")]
        """
        聊天窗口界面的输入框")]

        """
        self.chat_interface_edittext = [self.d(resourceId="com.tencent.mm:id/bkk", className="android.widget.EditText")]
        """
        聊天窗口界面
        输入框=> 按钮<发送>")]

        """
        self.chat_interface_send = [self.d(resourceId="com.tencent.mm:id/bql", className="android.widget.Button")]
        """
        当前微信用户被移出群聊，再进入群聊，会出现提示
        type :  android.widget.TextView
        name :  com.tencent.mm:id/b59
        text :  无法在已退出的群聊中发送消息
        被移出群聊后显示：无法在已退出的群聊中发送消息
        群主解散群后显示：无法在已停用的群聊中发送消息

        公众号的导航 菜单栏，也是b59
        例：
        d(resourceId="com.tencent.mm:id/b59", text="小程序商城")
        d(resourceId="com.tencent.mm:id/b59", text="话机通信")
        d(resourceId="com.tencent.mm:id/b59", text="会员服务")")]

        """
        self.chat_interface_removed_tip = [self.d(resourceId="com.tencent.mm:id/bln")]
        """
        通讯录界面，新的朋友")]

        """
        self.book_new_friend = [self.d(resourceId="com.tencent.mm:id/obc")]
        """
        通讯录中的 群聊 标签，")]

        """
        self.book_room = [self.d(text="群聊")]
        """
        通讯录 => 群聊 -> 群列表")]

        """
        self.book_room_rows = [self.d(resourceId='com.tencent.mm:id/cg1')]
        """
        通讯录--群聊--搜索框")]

        """
        self.book_room_search = [self.d(resourceId="com.tencent.mm:id/jgr")]
        """
        通讯录=> 好友邀请提示")]

        """
        self.book_friend_invitations = [self.d(resourceId="com.tencent.mm:id/g_9")]
        #################################################################################

        """
        通讯录=> 新的朋友")]

        """
        self.book_label_newfriend = [self.d(text="新的朋友")]

        """
        按钮添加朋友")]

        """
        self.new_friends_add = [self.d(text="添加朋友")]

        """
        接受按钮")]

        """
        self.new_friend_accept = [self.d(resourceId="com.tencent.mm:id/g_8", className="android.widget.Button")]

        """
        通过好友验证界面的标题，")]

        """
        self.new_friend_through = [self.d(text="通过朋友验证")]

        """
        通过好友验证界面的 完成按钮")]

        """
        self.new_friend_accept_done = [self.d(resourceId="com.tencent.mm:id/g68")]

        """
        通讯录中的公众号标签，")]

        """
        self.book_public_account = [self.d(text="公众号")]

        """
        通讯录中的 企业微信联系人 标签")]

        """
        self.book_wxwork_friends = [self.d(text="企业微信联系人")]

        """
        通讯录中的，好友信息行，
")]

        """
        self.book_friend_row = [self.d(resourceId="com.tencent.mm:id/kbq", className="android.widget.TextView")]

        """
        通讯录 底部的 提示，
        例：
                226个朋友")]

        """
        self.book_bottom_tip = [self.d(resourceId="com.tencent.mm:id/caj")]

        # 微信导航--我， 界面元素

        """
        当前微信号的 昵称")]

        """
        self.me_nick_name = [self.d(resourceId="com.tencent.mm:id/kbb")]

        """
        当前微信的 wxid")]

        """
        self.me_wxid = [self.d(resourceId="com.tencent.mm:id/ouv")]

        """
        页面 我
        按钮<设置>")]

        """
        self.me_settings = [self.d(resourceId="android:id/title", text="设置")]

        """
        我->设置
        标题 设置")]

        """
        self.me_settings_title = [self.d(resourceId="android:id/text1", text="设置")]

        """
        我->设置
        按钮<通用>")]

        """
        self.settings_universal = [self.d(resourceId="android:id/title", text="通用")]

        """
        我->设置->通用
        标题 通用")]

        """
        self.settings_universal_title = [self.d(resourceId="android:id/text1", text="通用")]

        """
        我->设置->通用
        按钮 <存储空间>")]

        """
        self.settings_storage_space = [self.d(resourceId="android:id/title", text="存储空间")]

        """
        我->设置->通用->存储空间
        标题 存储空间")]

        """
        self.settings_storage_space_title = [self.d(resourceId="android:id/text1", text="存储空间")]

        """
        我->设置->通用->存储空间
        微信已用空间
            --正在计算（空间数据）")]

        """
        self.settings_all_space = [self.d(resourceId="com.tencent.mm:id/pjo")]

        """
        我->设置->通用->存储空间
        缓存->正在计算（缓存数据）")]

        """
        self.settings_cache_count = [self.d(resourceId="com.tencent.mm:id/b4v")]

        """
        我->设置->通用->存储空间
        缓存->前往清理 按钮")]

        """
        self.settings_goto_clear = [self.d(resourceId="com.tencent.mm:id/pjh")]

        """
        我->设置->通用->存储空间
        缓存->前往清理 按钮
        清理 按钮")]

        """
        self.settings_cache_clear = [self.d(resourceId="com.tencent.mm:id/crz")]

        """
        我->设置->通用->存储空间
        缓存->前往清理 按钮
        清理 按钮
        弹窗
            -内容：清理缓存可能需要一些时间，清理过程中请耐心等候。
            -按钮：清理")]

        """
        self.settings_cache_popup_clear = [self.d(resourceId="com.tencent.mm:id/jln")]

        """
        我->设置->通用->存储空间
        缓存->前往清理 按钮
        清理 按钮

        点过弹窗-按钮 清理，后，
        出现提示 ：
")]

        """
        self.settings_cache_tips = [self.d(resourceId="com.tencent.mm:id/dft")]

        """
        我->设置->通用->存储空间
        聊天记录=正在计算（数据）")]

        """
        self.settings_records_count = [self.d(resourceId="com.tencent.mm:id/ju6")]

        """
        我->设置->通用->存储空间
        聊天记录=>正在计算（数据）")]

        """
        self.settings_records_manage = [self.d(resourceId="com.tencent.mm:id/pji")]

        """
        我->设置->通用->存储空间->聊天记录空间管理
        正在加载…")]

        """
        self.settings_records_loading = [self.d(resourceId="com.tencent.mm:id/iml")]

        """
        我->设置->通用->存储空间->聊天记录空间管理
        信息行")]

        """
        self.settings_records_rows = [self.d(resourceId="com.tencent.mm:id/odf")]

        """
        我->设置->通用->存储空间->聊天记录空间管理
        按钮<全选>
        点击全选后，当前元素的text 变为 取消全靠，")]

        """
        self.settings_records_selectAll = [self.d(resourceId="com.tencent.mm:id/mi1", text="全选")]

        """
        我->设置->通用->存储空间->聊天记录空间管理
        按钮<清理>")]

        """
        self.settings_records_clear = [self.d(resourceId="com.tencent.mm:id/crz")]

        """
        我->设置->通用->存储空间->聊天记录空间管理->弹窗
        弹窗
        所选范围内无可清理的图片、视频或文件
        所选范围还剩余 16.8 GB 的聊天记录，包括文字、语音、表情等。
        我知道了
        删除所选范围内剩余的聊天记录")]

        """
        self.settings_records_clearAll = [self.d(resourceId="com.tencent.mm:id/av7")]
        """
        我->设置->通用->存储空间->聊天记录空间管理->
        点击清理按钮->弹窗1
        清理按钮

        弹窗示例：
        	清理所选范围内的图片、视频和文件
            你可以在聊天上下文中继续看到这些消息，但是它们无法被打开。

            清理后，将剩余 5.3 GB 的聊天记录，主要包括文字、语音和表情等。
            <取消> <清理 (120.3 MB)>

        :return:
        """
        self.settings_records_delete_cache = [self.d(resourceId="com.tencent.mm:id/b0f")]








        """
        我->设置->通用->存储空间->聊天记录空间管理->弹窗->弹窗
        弹窗
        删除所选范围内剩余的聊天记录
        剩余的聊天记录主要包括文字、语音和表情等。
        按钮<删除>")]

        """
        self.settings_records_delete = [self.d(resourceId="com.tencent.mm:id/b0f")]

        """
        我->设置->通用->存储空间->聊天记录空间管理->弹窗->弹窗->弹窗
        弹窗
        删除后不可恢复，确定删除？
        按钮<删除>")]

        """
        self.settings_records_delete2 = [self.d(resourceId="com.tencent.mm:id/obc")]

        """
        我->设置->通用->存储空间->聊天记录空间管理->弹窗->弹窗->弹窗->弹窗
        弹窗
        正在删除: 5%")]

        """
        self.settings_records_deleting = [self.d(resourceId="com.tencent.mm:id/jma")]

        """
        微信好友信息界面
        与企业微信好友 界面元素 通用
        """

        """
        页面上 最上面 的第一个名字")]

        """

        self.friend_first_name = [self.d(resourceId="com.tencent.mm:id/cf8", className="android.widget.TextView")]

        """
        当设置备注名称时，页面上会出现第二个名字位置
        昵称 转到 第二个位置")]

        """
        self.friend_second_name = [self.d(resourceId="com.tencent.mm:id/cf7")]

        """
        好友的微信号   wxid")]

        """
        self.friend_wxid = [self.d(resourceId="com.tencent.mm:id/cff")]

        """
        好友 的地区")]

        """

        self.friend_area = [self.d(resourceId="com.tencent.mm:id/cf6", className="android.widget.TextView")]

        """
        设置备注和标签 set_notes_and_labels
        当已设置标签后，，变为 标签")]

        """
        # [self.d(resourceId="com.tencent.mm:id/br8")[0]
        self.set_notes = [self.d(resourceId="com.tencent.mm:id/m38")[0]]

        """
        通讯录-> 好友row -> 信息界面 -> 设置备注和标签 -> 备注文本框")]

        """
        self.text_view_notes = [self.d(resourceId="com.tencent.mm:id/cdk")]

        """
         通讯录-> 好友row -> 信息界面 -> 设置备注和标签 -> 备注文本编辑框")]

        """
        self.edit_text_notes = [self.d(resourceId="com.tencent.mm:id/cdb")]

        """
        通讯录-> 好友row -> 信息界面 -> 设置备注和标签 -> 按钮完成，")]

        """
        self.button_done = [self.d(resourceId="com.tencent.mm:id/fp")]

        """
        好友界面 归属的公司")]

        """
        self.friend_company_name = [self.d(resourceId="com.tencent.mm:id/ceq")]

        """
        好友信息界面，企业标签")]

        """
        self.friend_company_item = [self.d(text="企业")]

        """
        好友信息界面的，离职 标签")]

        """
        self.friend_depart_item = [self.d(text="已离职")]

        """
        好友信息界面的，发消息")]

        """
        self.friend_send_message = [self.d(resourceId="com.tencent.mm:id/o3b", text="发消息")]

        """
        公众号 信息界面
        """

        """
        公众号 列表 界面 中 条目")]

        """
        self.public_account_items = [self.d(resourceId="com.tencent.mm:id/awx")]

        """
        公众号 列表 底部 提示
        例：
        19个公众号")]

        """
        self.public_account_bottom_tip = [self.d(resourceId="com.tencent.mm:id/cjm")]

        """
        企业好友 信息界面
        """

        """
        企业微信联系人 界面中 列表的 条目")]

        """
        self.wxwork_friends_items = [self.d(resourceId="com.tencent.mm:id/k3e")]

        """
        微信群 信息界面
        标题：share_title
        """

        """
        微信群 信息界面,成员列表
        成员的头像图标，")]

        """
        self.room_members = [self.d(resourceId="com.tencent.mm:id/m7e")]

        """
        微信群 信息界面,成员列表--群主")]

        """
        self.room_owner = [self.d(resourceId="com.tencent.mm:id/m7e")[0]]

        """
        群信息界面
        群聊名称标签，")]

        """
        self.room_name_table = [self.d(resourceId="android:id/title", text="群聊名称")]

        """
        群信息界面，标签,备注")]

        """
        self.room_label_notes = [self.d(text="备注")]

        #
        # self.room_notes_empty
        #     """
        #     群信息界面
        #    当没有备注名称时，只有 结点 com.tencent.mm:id/ka3，
        #     :return:
        #     """
        #     [self.d(text="备注")]

        """
        群信息界面
        当有备注名称时，在此结点下，会生成，android:id/summary")]

        """
        self.room_notes_text = [self.d(resourceId="android:id/summary")]

        """
        群信息界面--备注修改界面
        备注输入框")]

        """
        self.room_notes_editText = [self.d(resourceId="com.tencent.mm:id/jpm", className="android.widget.EditText")]

        """
        群信息界面->备注修改界面
        按钮： 完成

        type :  android.widget.Button
        name :  com.tencent.mm:id/hfe
        text :  完成
        enabled :  False

        当在输入框中 输入文字后，
        enabled 变为 True")]

        """
        self.room_notes_done = [self.d(resourceId="com.tencent.mm:id/kao")]

        """
        群信息界面->备注修改界面
        点击按钮 完成 后，可能出现的弹窗，

        eg:

        你的操作过于频繁，可稍后再试，
        确定，
")]

        """
        self.room_notes_pop_tip = [self.d(resourceId="com.tencent.mm:id/guo")]

        """
        群信息界面->备注修改界面
        点击按钮 完成 后，可能出现的弹窗，

        eg:

        你的操作过于频繁，可稍后再试，
        确定，
")]

        """
        self.room_notes_pop_button_ok = [self.d(resourceId="com.tencent.mm:id/guw")]

        """
        群信息 界面的 开关列表")]

        """
        self.room_switchs = [self.d(resourceId="com.tencent.mm:id/btf")]

        """
        按钮 折叠该群聊，")]

        """
        self.room_switchs_fold = [
            self.d(resourceId="android:id/title", text="折叠该群聊").right(resourceId="com.tencent.mm:id/btf")]

        """
        群信息界面，保存到通讯录开关按钮")]

        """
        self.room_switch_save_tobook = [
            self.d(resourceId="android:id/title", text="保存到通讯录").right(resourceId="com.tencent.mm:id/btf")]

        """
        群信息界面，保存到通讯录开关按钮
        uiautomator2 没有实现 parent
        # android-uiautomator-server not implemented")]

        """
        # [self.d(text="保存到通讯录").parent().sibling("android.widget.FrameLayout").child(
        #     "com.tencent.mm:id/bab")]
        self.room_switch_save_tobook = [self.d(resourceId="android:id/title", text="保存到通讯录").right(
            resourceId="com.tencent.mm:id/btf")]

        """
        群信息界面，保存到通讯录开关按钮")]
        """
        self.room_switch_save_tobook2 = [self.d(resourceId="com.tencent.mm:id/btf")[2]]

        """
        第一次点击 折叠 后，会出现弹窗")]
        """
        self.room_popup_tohide = [self.d(resourceId="com.tencent.mm:id/cil")]

        """
        群信息界面，保存到通讯录 标签")]

        """
        self.room_label_saveToBook = [self.d(text="保存到通讯录")]

        """
        群信息界面，标签,折叠该群聊")]

        """
        self.room_label_toFold = [self.d(text="折叠该群聊")]

        """
        群信息界面， <退出群聊> 按钮
        群信息界面， <删除> 按钮")]

        """
        self.room_button_exit = [self.d(resourceId="com.tencent.mm:id/o3b")]

        """
        点击退出群聊后的 弹窗中的两个按钮
        按钮1：
              type :  android.widget.Button 
              name :  com.tencent.mm:id/alm 
              text :  取消 
        按钮2：
              type :  android.widget.Button 
              name :  com.tencent.mm:id/aln 
              text :  退出 
        """

        """
        群信息界面，弹窗中的 退出 按钮

        聊天记录空间管理-> 清理")]

        """
        self.room_popup_exit = [self.d(resourceId="com.tencent.mm:id/b0f")]

        """
        删除已退出的群,确定删除，
        tip:
        清空聊天记录，并在聊天列表中删除。")]

        """
        self.room_popup_del = [self.d(resourceId="com.tencent.mm:id/obc")]